package com.gem.day12;

import java.util.Set;
import java.util.TreeSet;

/**
 * 本类用来演示TreeSet
 * 特点: 可以根据自定义的排序规则来排序的HashSet
 * 
 * @author easonsy
 * 2020年8月3日 上午10:09:37
 */
public class TreeSetDemo {
	public static void main(String[] args) {
		Set<String> set = new TreeSet<>();
		set.add("sherlock");
		set.add("rose");
		set.add("jack");
		set.add("tom");
		set.add("jack");
		set.forEach(System.out::println);

		/*
		 * 注意: 
		 * TreeSet的排序必须满足以下两个要求中的任意一个:
		 * 1. 集合中存放的元素对象必须实现java.lang.Comparable接口,并且重写compareTo()方法[不推荐]
		 * 2. 在TreeSet的构造方法中传入排序规则的比较器来实现排序[推荐]
		 */
		Set<User> users = new TreeSet<>((o1, o2) -> o2.getUsername().compareTo(o1.getUsername()));
		User u1 = new User("admin", "123");
		User u2 = new User("jack", "123456");
		User u3 = new User("admin", "123");
		users.add(u1);
		users.add(u2);
		users.add(u3);
		users.forEach(System.out::println);
	}
}
